Connected to mission planner > mavlink inspector > OPEN_DRONE_ID_ARM_STATUS appeared with 0 status and payload (ready to arm)
I used a python script to emulate a GCS GPS so I can a PC to run mission planner, taking the herelink and custom software out of the equation. This is "emulator dif position.py".
In mission planner RID tab:
	RemoteID OK
	RID comms green
	GCS GPS yellow (should this be green?)
	ARM status green
Mission planner's outgoing traffic includes:
	COMMAND_LONG
	HEARTBEAT
	OPEN_DRONE_ID_BASIC_ID
	OPEN_DRONE_ID_OPERATOR_ID
	OPEN_DRONE_ID_SELF_ID
	OPEN_DRONE_ID_SYSTEM
	OPEN_DRONE_ID_SYSTEM_UPDATE
	REQUEST_DATA_STREAM
	TIMESYNC
After filling in the information for MP's remoteID tab (in screenshots MP RID connection with spoofed GCS GPS_1-3), the contents of the OPEN_DRONE_ID_BASIC_ID parameters are filled with values that seem reasonable.
The Here4 Blue is connected via droneCAN, so I used MP's dronecan inspector to check the data. See screenshots "dronecan DID". Nothing looked obviously wrong there, although I can only assume what values are acceptable for indicating something is unused. 
The message frequencies on DroneCAN are:
BasicID 0.3 Hz
Location 1 Hz
OperatorID 0.3 Hz
SelfID 0.3 Hz
System 1 Hz
(from here4) ArmStatus 1 Hz

Regarding our custom GPS HEARTBEAT message, I don't know, but I cut it out of the above testing and will look into that later.
I've worked with QGC because it works better on the herelink controller than MP, but frankly, MP has vastly superior debug tools and is my go-to choice for a PC GCS.
Despite all that, DroneScanner still doesn't pick it up. Just to cover my bases, I tried it on two separate phones and checked the app permissions.

I would have to rebuild our custom software to try a different target system in the mavlink messages. That's beyond what I'm able to tackle on the weekend. In any case, I would hope that the Here4 Blue would at least work with mission planner...

At this point, I am suspecting that trying a different Here4 on Monday is a good idea. In my opinion, the fact that the droneCAN messages are being sent, and I know that the CAN connection is good because the GPS works, is a strong indicator that it is either A) the message contents or B) a Here4B malfunction.
